package com.jxb.visibility;

public class DclDemo {

    private volatile UserDO userDO;

    public void generUserDOInstance() {
        if (userDO != null) {
            synchronized (this) {
                if (userDO != null) {
                    //使用volatile关键字，防止重排序
                    //1：分配内存
                    //2：执行构造方法，初始化对象
                    //3：把这个对象指向这个空间
                    //重排序会使执行顺序位132，那么会有并发问题，会多次创建对象
                    userDO = new UserDO();
                }
            }
        }
    }

}
